c语言char有什么作用,C语言中char*和char[]用法区别分析
本文实例分析了C语言中char* 和 char []的区别。分享给大家供大家参考之用。具体分析如下:
一般来说,很多人会觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。
本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char *s = "hello";后,不能使用s[0]='a';语句进行赋值。这是将提示内存不能为"written"。
当用char s[]="hello";后,完全可以使用s[0]='a';进行赋值,这是常规的数组操作。
若定义:
char s[] = "hello";
char *p = s;
也可以使用p[0] = 'a';因为这是p ==s,都是指向数组的指针。
下面看另外一种定义:
char *s = (char *)malloc(n(www.jb51.net));//其中n为要开辟空间的大小
这句话其实相当于:
char s[n];
定义的也是一个指向数组的指针,便可进行数组的下标操作
例子
#include
int main(int argc, char* argv[]) {
char* buf1 = "this is a test";
char buf2[] = "this is a test";
printf("size of buf1: %d\n", sizeof(buf1));
printf("size of buf2: %d\n", sizeof(buf2));
return 0;
}
结果是:
$ > ./main
size of buf1: 4
size of buf2: 15
相信本文所述对大家C语言程序设计的学习有一定的借鉴价值。
c语言char有什么作用,C语言中char*和char[]用法区别分析相关推荐
- c语言put语句的作用,C语言中put()与puts()的区别?
C语言中put()与puts()的区别? 关注:275 答案:2 mip版 解决时间 2021-02-04 15:47 提问者笑低了眉眼 2021-02-04 12:42 C语言中put()与pu ...
- c语言time函数的作用,c语言中time函数的用法
c语言中time函数的用法 c语言中time函数的用法的用法你知道吗?下面应届毕业生小编就跟你们详细介绍下c语言中time函数的用法的用法,希望对你们有用. c语言中time函数的用法的用法如下: 头 ...
- c语言pow函数的作用,c语言中pow函数的用法是什么?_后端开发
在c言语中pow()函数是用来求x的y次幂.x.y及函数值都是double型 ,其语法为"double pow(double x, double y)":个中参数"dou ...
- c语言eof不起作用,c语言中EOF的用法
c语言中EOF的用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言中EOF的用法 1.EOF是end of fi ...
- sizeof 在C语言的作用,C语言中的sizeof的用法详解
C语言中的sizeof的用法详解 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操 ...
- scanf在c语言中的作用,c语言中scanf的基本用法
前言 scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单: 1 int a; 2 scanf("%d",&a); ...
- c语言sinx的作用,C语言中 sinx cosx 的用法
#include #include int main() { double pi=acos(-1.0); double angle; scanf("%lf",&angle) ...
- c语言中rand()的作用,c语言中的rand()函数用法
rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...
- 在c语言中for的作用,c语言中for语句的用法
C语言语言中FOR的用法 for 是一个循环语句,和while是类似的,for一般的用法有: for(i=0;i<10;i++) { printf("hello world" ...
- c语言中%s的作用,C语言中%c与%s的区别与划分详解
%c格式对应的是单个字符,%s格式对应的是字符串. 例: char a; char b[20]; scanf("%c",&a); //只能输入一个字符. scanf(&qu ...
最新文章
- NASA将天文数据转换为音频,来听听银河系的声音!
- 计算机实现减法学习心得
- Solution 1: BST转双向链表
- sizeof之字节对齐
- java8 lambda python_java8里面lambda的stream()用法讲解
- SRS流媒体服务器——单机环境搭建和源码目录介绍
- Linux备份策略(第二版)
- error: Please reinstall the libcurl distribution - easy.h should be in curl-dir/include/curl/
- 【推荐实践】RALM:实时Look-alike算法在微信看一看中的应用(附PPT下载链接)...
- ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
- 一图理解ceil和floor的区别
- python调用win32api详解_Python调用Win32 API实现截图
- Webtrends的跨域访客跟踪机制
- c语言数字的写法田字格,《国家规定的汉字笔顺规则》及田字格里写数字1~10的标准格式...
- java转盘抽奖算法_抽奖算法 - 幸运大转盘 - java
- Linux 误删除文件恢复
- 问题:必须使用记录或另一备份以恢复包含系统注册表
- APISpace 行驶证OCR API
- 博客小编风明姗姗来迟
- 如何取消PPT的密码保护?
热门文章
- Selenium - IWebDriver 控制scroll bar到底部
- 开源路由软件zebra的命令存储原理及使用方法
- Ubuntu11.04 3945ABG无线网卡驱动安装
- IE图标消失 HTML文件图标变为未知图标的解决方法
- 软件工程 工具之二—— PowerDesigner v12(六)
- layui多级联动下拉框的实现_简单三级联动的实现
- 基于nchan打造百万用户的聊天室
- JavaScript 严格模式(use strict)
- android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部
- beforeRouteEnter,beforeRouteLeave函数