• 字符数组 字符指针


    指针是什么?说白了就是存放地址的变量!
     
    #include <stdio.h>
    #include <unistd.h>
    #include <fcntl.h>
    
    int main(int argc, char* argv[])
    {
    	//初始化法一
    	char buff_first[4] = {'a', 'b', 'c'};
    	printf("buff_first %s\n", buff_first);
    	buff_first[0] = 'd';
    	printf("buff_first change %s\n", buff_first);
    
    	char buff_second[4] = {'a', 'b'};
    	printf("buff_second %s\n", buff_second);
    	printf("buff_second[2] %s\n", buff_second[2]);
    	printf("buff_second[3] %s\n", buff_second[3]);
    
    	char buff_third[4] = {'a', '\0', 'b'};
    	printf("%s\n", buff_third);
    
    	//初始化法二
    	char buff_fourth[4] = "ab";
    	printf("%d\n", strlen(buff_fourth));
    
    	//初始化法三
    	char buff_fifth[4] = {"ab"};
    
    	char buff_sixth[] = "abcd";
    
    	return 0;
    }
    
    

    输出:

    buff_first abc
    buff_first change dbc
    buff_second ab
    buff_second[2] (null)
    buff_second[3] (null)
    a
    2

    #include <stdio.h>
    #include <fcntl.h>
    
    int main(int argc, char* argv[])
    {
    	char* pbuff;
    	pbuff = "abc";
    	printf("pbuff %s\n", pbuff);
    	printf("字符指针的地址&pbuff %x\n", &pbuff);
    	printf("字符指针所指字符串常量的首地址&pbuff[0] %x\n", &pbuff[0]);
    	
    	pbuff = "cde";					//可以改变字符指针的指向。
    	printf("可以改变字符指针的指向pbuff %s\n", pbuff);
    	printf("字符指针的地址&pbuff %x\n", &pbuff);
    	printf("字符指针所指字符串常量的首地址&pbuff[0] %x\n", &pbuff[0]);
    
    	//pbuff[1] = 'x';				//这句是错的,不能通过指针改变字符串常量
    	//即"abc"  "cde"是两个字符串常量存在不同的内存区域中,字符指针可以指向这两个不同的字符串,
    	//但不能改变字符串常量。
    	
    	char buff[20] = "xyz";
    	printf("buff %s\n", buff);
    	buff[1] = 'c';					//这里"xyz"是变量,可以改变。
    	printf("可以改变字符数组内的字符buff %s\n", buff);
    	printf("字符数组名地址&buff %x\n", &buff);
    	printf("字符数组首地址&buff[0] %x\n", &buff[0]);
    
    	//buff = "ijk";					//错误,字符数组名是常指针,不能改变其指向。
    	return 0;
    }

    输出:

    pbuff abc
    字符指针的地址&pbuff 12ff7c
    字符指针所指字符串常量的首地址&pbuff[0] 42201c
    可以改变字符指针的指向pbuff cde
    字符指针的地址&pbuff 12ff7c
    字符指针所指字符串常量的首地址&pbuff[0] 422ff4
    buff xyz
    可以改变字符数组内的字符buff xcz
    字符数组名地址&buff 12ff68
    字符数组首地址&buff[0] 12ff68

  • 相关阅读:
    牛客网·剑指offer 从尾到头打印链表(JAVA)
    牛客网·剑指offer 替换空格(JAVA)
    简单的用户登录后台程序编写
    牛客网&剑指offer 二维数组中的查找(JAVA)
    洛谷 P1603 斯诺登的密码(JAVA)
    【回溯法】八皇后问题(递归和非递归)
    如何使用SecureCRT让Vim有颜色?
    js 转base64字符串为文件
    springboot 测试类
    oracle 登录、重启服务
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2711458.html
Copyright © 2020-2023  润新知