C语言 Char* 和Char 用法
- 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);//其中n为要开辟空间的大小
相当于
char s[n];
#include <stdio.h>
int main(int argc, char* argv[]) {
char* buf1 = "abcd1234";
char buf2[] = "abcd1234";
printf("size of buf1: %d\n", sizeof(buf1));
printf("size of buf2: %d\n", sizeof(buf2));
printf("长度为:%d %d\n", strlen(buf1), strlen(buf2));
return ;
size of buf1: 4
size of buf2: 9
长度为:8 8
C语言 Char* 和Char 用法的更多相关文章
- 【转】char data[0]用法总结
@2019-07-31 struct MyData { int nLen; ]; }; 开始没有理解红色部分的内容,上网搜索下,发现用处很大,记录下来. 在结构中,data是一个数组名:但该数组没有元 ...
- C中char类型的用法
代码 /* char类型的用法 */ #include <stdio.h> main(int argc, char *argv[]) { /* 声明字符变量c1 */ char c1 = ...
- C语言char[]和char*比较
先看看一个例子: #include <iostream> using namespace std; main() { char *c1 = "abc"; char c2 ...
- 用c++语言编写函数 int index(char *s,char * t),返回字符串t在字符串s中出现的最左边的位置,如果s中没有与t匹配的子串,则返回-1。类似于索引的功能。
首先,分析一下程序的思路: 1:从s的第i个元素开始,与t中的第1个元素匹配,如果相等,则将s的第i+1元素与t中的第2个元素匹配,以此类推,如果t所有元素都匹配,则返回位置i;否则,执行2; 2: ...
- c语言int型和char型的自动类型转换
; //机器码为0xff unsigned ; //机器码0xfe if (a <= b){ printf("a <= b\n"); } else{ printf(&q ...
- C语言函数sscanf()的用法
从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...
- 【转】深入 char * ,char ** ,char a[ ] ,char *a[] 内核
原文出处:http://blog.csdn.net/daiyutage/article/details/8604720 C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了 ...
- 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
本文来自CSDN博客:daiyutage的文章 来源网页地址:http://blog.csdn.net/daiyutage/article/details/8604720 本人觉得这是一编很有价值的文 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
随机推荐
- C语言基础五 数组的应用
.根据用户输入的10人成绩并将其保存到数组中,求最高成绩,最低成绩和平均成绩 int scoure[10];//存储10个数据的数组 int i; int sum;//总成绩 int max,min, ...
- Java BigDecimal toString() 的转换和输出
BigDecimal 的 toString() 方法将会把 BigDecimal 通过字符串的方式输出.这个方法将会在必要的时候使用指数进行输出. 具体的转换步骤是按照下面的步骤进行转换的: BigD ...
- Azure Media Services -可提供视频点播(VOD)
Azure Media Services 提供直播/VOD点播相关的功能. •提供编码和打包以适用于各种设备播放视频(IOS/Android/web等). •向大量在线观众流式传输实时直播,例如活动 ...
- JavaScript九九乘法表
JavaScript九九乘法表 <script> for (var i = 1; i < 10; i++) { for (var j = 1; j <= i; j++) { d ...
- JS 重载父页面
<script language=javascript> window.onload=function(){ //刷新父页面 window.opener.location.reload() ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(3)
需要注意的是,制作操作系统权限全程都要用 root pushd 和 popd 为了方便目录管理,所以出现了这种两个命令,他们的原理就是利用堆栈来实现目录管理. 这两个命令,pushd 负责将指定的目录 ...
- ArcGIS Engine开发碰到问题及解决方式
1.问题描述——运行提示:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any Arc ...
- Docker--数据管理之Volumes
前言:我们知道docker容器内产生或修改的数据仅在该容器内有效,即容器关闭,其之前产生或修改的数据也就删除了,这明显不能满足我们大多数场景的需求.当然这只是默认,docker为我们提供了多种保存数据 ...
- 【IDE】IDEA - 使用问题记录
1.显示方法API:类似eclipse把鼠标放到方法上有api信息. setting/keymap中搜索 quick docs:(有说默认快捷键是ctrl+q,但我的不是待查找快捷键) 2.forea ...
- MySQL在Windows中设置环境变量
在桌面选择“计算机”的图标(或者是我的电脑),右键-->属性-->点击“高级系统设置” 然后选择 高级 选项点击环境变量 然后点击新建-> 变量名为MYSQL_HOME 变量值为m ...