C++容易出错的点

1、 c风格字符串的两种形式:
1、char a[] = {'a', 'b','v', '\0'}; 手动添加结束符‘\0’
2、char a[] = "abv";  默认添加'\0'


2、sizeof 返回的值表示的含义如下(单位字节):

   数组 —— 编译时分配的数组空间大小; 

      指针   ——   存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为   4   );  
      类型   ——   该类型所占的空间大小;  
      对象   ——   对象的实际占用空间大小;  
      函数  ——  函数的返回类型所占的空间大小。函数的返回类型不能是  void 
3、
struct link 
    char data;
    []; 
} node;

在C语言中【】里必须为必须为struct link *next; C++中可以为link *next.

4、

int i = 3; printf("%d %d", ++i, ++i)
函数的参数是从右向左压栈的,输出时从栈顶开始,相当于: int i = 3;  ++i; ++i; printf("%d,%d",i,i);所以是 5,5;
再举一个例子,int i = 1; printf("%d,%d", i += 2, i *= 3); 在输出i之前先进行了i *= 3和 i += 2;最终i = 5;所以结果是5,5;

5、常量指针和指针常量:

const char *p

char const *p

上面两者一样,p是一个指向字符常量的指针,p所指向内存地址中的内容是不可以更改的

char * const p

表示常指针,即该指针指向的地址是不可以改变的

     void main(void)
    {
	    char A[] = "hello";
	    char B[] = "world";
	    const char* pa ;
	    char const *pc;
	    char* const pb = B;	// const object must be initialized if not extern

	    pa = A;		// OK
	    //*pa = 'b';	// compile error
	    pc = A;		// OK 
	    // *pc = 'c'; 	// compile error 
	    *pb = 'b'; 		// OK
	    // pb = A;		// compile error	
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值