C语言回顾-字符串指针
1.字符串指针
char *变量名="字符串内容";
char ch='b';
char *p1=&ch;
char *str="C Language";//表示s指向字符串的首地址
str="ssssssss";//字符串存在常量区,可以修改s指向的内容
*(str+2)='X';//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的
常见误区:
char *str2=NULL;
printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量
解决办法:
char *str2=NULL;
str2=malloc(100);
printf("%s",str2);
或者:
char ch3[100];
char *str2=ch3;
printf("%s",str2);
2.二维字符数组
char ch2[3][10]={"abc","def","kkk"};
3.char类型的指针数组和字符数组的区别
char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址
#include <stdio.h> int main(int argc, const char * argv[]) {
char *name[]={"abc","def","kkk"};
for(int i=;i<;i++){
printf("%s\n",*(name+i));//name[i]
} return ;
}
1)字符串指针char *ss="abc";指向可以改变ss="ssssss";
2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,
4.字符串排序
//
// main.c
// 字符串排序
//
// Created by fanyafang on 15/11/4.
// Copyright © 2015年 itcast. All rights reserved.
// #include <stdio.h>
#include <string.h> void sortString(char *arr[],int length){
char *temp="";
//选择排序
for(int i=;i<length;i++){
for(int j=i+;j<length;j++){
if(strcmp(arr[i], arr[j])>){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
} int main(int argc, const char * argv[]) {
char *arr[]={"China","America","Flash","Toop"}; for(int i=;i<;i++){
printf("%s\n",arr[i]);
}
printf("\n");
sortString(arr,); for(int i=;i<;i++){
printf("%s\n",arr[i]);
} return ;
}
C语言回顾-字符串指针的更多相关文章
- Swift3.0语言教程使用指针创建和初始化字符串
Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...
- C语言中字符数组和字符串指针分析
这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...
- c语言字符串指针
最近正在看c语言,在指针这块遇到了麻烦,特别是字符串指针这块,简单记录下. 字符串指针 void main() { char *p = "tasklist"; printf(&qu ...
- C语言复习-字符串与指针
C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...
- go语言之字符串、指针、数组、切片、结构struct、面向对象
一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇 ...
- C语言 字符串指针和字符串数组使用区别
字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- C语言中的指针数组
C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...
- <2014 04 15> C++语言回顾精要(原创By Andrew)
C++语言回顾精要 <Visual C++程序设计>张岳新,这本书是很多学校的本科生C++教学用书,今天重新拿来翻了一遍.跟很多国人写的技术书籍一样,写书并不是为了让初学者看懂入门,而是为 ...
随机推荐
- <八>JDBC_重构DAO查询方法
DAO类: import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import ...
- 大端小端系统_union_栈的增长方向
一道题引发的思考: 1.看一下之前写的union的特点,理解一下共享内存的概念 2.栈的增长方向是从高地址向低地址增长(数组比较特别,a[0]在低地址,a[n-1]在高地址)(堆由低地址到高地址存储) ...
- JavaScript:数组大全
栈/队列 数组es3: pop删除最后一项(栈) shift删除第一项(队列) push增加到最后(栈) unshift增加到最前(队列) reverse翻转 join转字符串 slice截取(切片) ...
- 2016 年 50 个最佳的轻量级 JavaScript 框架和库
作者:IT程序狮链接:https://zhuanlan.zhihu.com/p/24598210来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 回顾今年已发布的 JS ...
- asp.net identity 2.2.0 在WebForm下的角色启用和基本使用(三)
角色管理功能: 界面部分: <%@ Page Title="" Language="C#" MasterPageFile="~/Site.mas ...
- 关于datagridview里使用combox的总结
最近写的程序中需要在DataGridView中使用下拉选择的功能,首选方案是列的ColumnType属性 使用EditingControlShowing事件, if (e.Control is Com ...
- Java之内存诊断
Java 内存诊断比较容易, 需要: 1 获取heap dump 2 分析heap dump 1.1 获取dump之1 VM arguments: -XX:+HeapDumpOnOutOfMemory ...
- linux下安装svn server
1. yum install subversion 2. mkdir -p /home/svn/svnfile 3. svnadmin create /home/svn/svnfile 4. 进入co ...
- PCB上过孔via钻孔的直径如何设置 是任意的吗 谈谈PCB钻孔工艺及规格
PCB上过孔via钻孔的直径如何设置,是不是可以随便填入一个直径尺寸就行了?比如我的走线宽度是6mil,那我的via过孔直径也设置为6mil,节约布线空间岂不是更好?这样的设计板厂是否都能按照设计规格 ...
- SQL Server 2014 Backup Encryption
转载自: Microsoft MVP Award Program Blog 来源:Microsoft MVP Award Program Blog 的博客:https://blogs.msdn.mic ...