c语言中字符数组和字符指针的区别:(一句话,一旦要修改就用字符数组)

看下面两个申明:

char *str =“Hello World”;
char str1[] =“Hello World”;


字符数组和字符指针的区别:

1,字符数组和任何其他的数组一样,数组元素可以被修改,而字符指针保存的是字符串字面量,是一个常量,不能够被修改

2,申明为字符数组时,str1位数组名,而神明为字符指针时str位指针变量,可以被修改重新赋予值

3,如果需要可以修改变量的字符串,必须申明为字符数组,字符指针是不行的

//
//  main.c
//  TestArrayPoint
//
//  Created by 千 on 16/7/18.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    
    int array[] = {1,2,3,4,5};
    //测试指针是否可以修改该数组上面的值,是可以的
    int *point = array;
    *point = 6;
    printf("*point=%d\n",*point);
    printf("array[0]=%d\n",array[0]);
    
    //测试指针是否可以修改字符数组上面的值,是可以的
    char charArray[]="hello";
    printf("charArray[0]=%c\n",charArray[0]);
    char *pointchar = charArray;
    printf("*point=%c\n",*pointchar);
    *pointchar = 'w';//注意了这里是*,不能少了,而且后面的w是字符而不是字符串
    //charArray[0]='w';
    printf("*point=%c\n",*pointchar);
    printf("*charArray=%s\n",charArray);
    
    //指针数组可以访问每一个元素,但是不可以修改,所以说如果要修改就使用字符数组
    
    char *pointArray = "hello";//指针数组,可以访问里面的每个元素的,但是不可以修改的
    printf("*charArray=%s\n",pointArray);
    pointArray++;
    //*pointArray='c';//是不可以修改的如果修改,会报错,Thread 1:EXC_BAD_ACCESS(code=2,address=0x1000000...)
    printf("%c\n",*pointArray);
    printf("*charArray=%s\n",pointArray);
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值