首页 > 编程语言 > 详细

C语言中容易混淆的问题

时间:2020-02-12 19:53:10      阅读:48      评论:0      收藏:0      [点我收藏+]

字符数组与字符串

1.C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。
2.字符串结束标志‘\0‘,c语言中字符串总是以‘\0‘作为结尾。
3.字符串会自动在结尾补‘\0‘。
4.用字符数组存储字符串时,要特别注意‘\0‘,要为‘\0‘留个位置,所以字符数组的长度至少要比字符串的长度大 1。

char str[7] = "abc123";
或者
char str[] = "abc123";

5.逐个为字符数组赋值时,容易遗忘补字符串结束标志‘\0‘,可以将字符数组所有元素都初始化为“零”值。

char str[30] = {0}; //将所有元素都初始化为 0,或者说 ‘\0‘

6.字符数组长度是固定的,其中任何一个数组元素都可以为 null(‘\0‘) 字符。

char str[32] = "abc123";
printf("%d\n",sizeof(str)); \\32 数组固定长度,其它没有赋值的元素为\0
printf("%d\n",strlen(str)); \\6 字符个数

7.字符串长度。
所谓字符串长度,就是字符串包含了多少个字符(不包括最后的结束符‘\0‘)。

char *str = "abc123";
printf("%d\n",strlen(str)); //6


指针函数和函数指针

指针函数:指函数的返回值为指针,即本质是一个函数。函数返回类型是某一类型的指针。

int *f(x,y);  /* 声明一个函数 */

函数指针:指向函数的指针变量,即本质是一个指针变量。

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */ 
//f=&func;

 

指针数组和数组指针

指针数组:存储指针的数组,可以理解为"指针的数组"。

数组指针:指向数组的指针,本质是指针,只是指向数组。

C语言中容易混淆的问题

原文:https://www.cnblogs.com/-wenli/p/12300037.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!