关于c++中c_str函数的一些问题

1.“c_str返回的是临时指针,不能对其操作”这句话是什么意思,临时指针是像传值一样的拷贝吗,存在于临时栈区的那种
2.一个string被c_str函数作用后会被析构??为什么我自己运行出来不是这样子的,下面附图图片说明
图片说明

1个回答

  1. c_str()返回的是const char*指针,所以不能用该指针改变其指向的对象。例如你的string对象是1234,你希望修改成2234,那你是不能用string函数的c_str返回值来修改它的。
  2. 不是string对象在调用c_str后会被析构,而是string对象在其作用期结束的时候被析构(无论是否调用c_str)。但如果你用c_str获得了一个指针,而这个指针的作用期比string对象长,那么在string被析构后这个指针还存在,而指针指向的位置已经无效了。这就会出问题。大概是这样: const char* func(){ string s = "1234"; return s.c_str(); } 这个函数是不正确的,因为在func返回的时候,s会被析构。所以你返回的const char*指针,指向了一个无效区域。(注意,这个无效区域可能暂时没有被新数据覆盖,所以你在函数返回后立刻访问这个指针对象,不见得会出错,但这个区域迟早会被覆盖的。)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于c++中c_str函数的一些问题

1.“c_str返回的是临时指针,不能对其操作”这句话是什么意思,临时指针是像传值一样的拷贝吗,存在于临时栈区的那种 2.一个string被c_str函数作用后会被析构??为什么我自己运行出来不是这样子的,下面附图![图片说明](https://img-ask.csdn.net/upload/201604/04/1459742759_78074.png) ![图片说明](https://img-ask.csdn.net/upload/201604/04/1459742775_748159.png)

c++中c_str()函数--一道简单的机试题

题目描述: 输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。 输入: 测试数据有多组,输入字符串。 输出: 对于每组输入,输出处理后的结果。 样例输入: bacd 样例输出: abcd 源代码: #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> #include<cstring> using namespace std; int main() { int i = 0,j,num; string in; char* arr = new char[200]; int len = 0; while(cin>>in) { strcpy(arr,in.c_str()); len = strlen(arr); sort(arr,arr+len); for(i = 0; i < len; i++) { cout<<arr[i]; } cout<<endl; } return 0; } 这个代码一直报错为: Runtime Error,请大家教教我把,实在是看不出了 (其实这个题有多种解法我知道,我就想知道为甚这么写的时候报这个错误) 来源:http://ac.jobdu.com/problem.php?pid=1054

C++的有关strcpy_s函数的一些问题

#include<iostream> #include<vector> #include<string> using namespace std; int main(){ vector<string> strvec; string str; cout << "please enter some string,Ctrl+Z to end:" << endl; while (cin >> str) strvec.push_back(str); for (vector<string>::iterator it = strvec.begin(); it != strvec.end(); it++) cout << *it << endl; //创建字符指针数组 char **strpoi = new char*[strvec.size()]; //处理指针数组 size_t ix = 0; for (vector<string>::iterator iter = strvec.begin(); iter != strvec.end(); ++iter, ++ix) { char *p = new char[(*iter).size()+1]; strcpy_s(p,(*iter).c_str()); strpoi[ix] = p; cout << *p << endl; cout << strpoi[ix] << endl; } for (size_t j = 0; j < strvec.size(); j++) delete[] strpoi[j]; delete[]strpoi; system("pause"); return 0; } ``` ``` 为什么这段代码出现错误。 strcpy_s(p,(*iter).c_str()); strpoi[ix] = p; 这句里出错了 ![图片说明](https://img-ask.csdn.net/upload/201510/05/1444022679_529741.png)

C语言中if函数中的问题

#include<stdio.h> int main() { int num[2][6]={{0,0,0,0,0,0},{0,0,0,0,0,0}}; int i=0,j=0,m,n,p,z; printf("Please type 1 for first class,Please type 2 for economy\n"); { for(p=1;p<=10;p++) { scanf("%d",&z); if(z==1&&num[0][4]!=1) num[0][i]=1, i++, printf("头等舱%d,%d\n",1,i); else if(z==2&&num[1][4]!=1) num[1][j]=1, j++, printf("经济舱%d,%d\n",2,j); else if(z==1&&num[0][4]==1) { printf("Can you change to the economy?\n"); scanf("%d",&m); { if(m==8) { num[1][p-5]=1, j++, printf("经济舱%d,%d\n",2,p-5); } else printf("The next flight start in 3 hours later\n"),p=p-1; } } else if(z==2&&num[1][4]==1) { printf("Can you change to the first class\n"); scanf("%d",&n); { if(n==9) { num[0][p-5]=1, i++, printf("头等舱%d,%d\n",1,p-5); } else printf("The next flight start in 3 hours later\n"),p=p-1;} } else printf("Error\n"),p=p-1; } } printf("All tickets are sold!\n"); return 0; } 就是这样一个程序,目的是选票,当输入1的时候自动给出头等舱以及位置序号,当输入2的时候给出经济舱以及位置序号。当然已被选择的不能再次被选择。 问题: 加入头等舱满了,会再次有一个if函数出来询问你是否可以换到经济舱,然而我定义 if(m=='y') 这个语句的时候会直接输出下面的else.....所以我不得不用数字来表示是否,比如输入8就代表可以,具体长这样 用数字时候是这样![图片说明](https://img-ask.csdn.net/upload/201512/02/1449050037_993498.png) 然而当我想用y来表示的时候,就变成这样了(运行时我已经把变量改成char 型,,输入时也是%c了)![图片说明](https://img-ask.csdn.net/upload/201512/02/1449050113_182140.png) 请教如何解决?

在CodeIgniter中使用this-> db-> escape_str()函数时出现语法错误

<div class="post-text" itemprop="text"> <p>I want to send my input data to an SQL Query in my CodeIgniter application in the following way:</p> <pre><code> $sdata['department'] = $this-&gt;input-&gt;post('department'); //Data as text input $sql = "SELECT MAX(roll) FROM student WHERE department = ".this-&gt;db-&gt;escape_str($sdata['department']); </code></pre> <p>The above code is inside my controller.</p> <p>And I keep getting the following error:</p> <pre><code> Parse error: syntax error, unexpected '-&gt;' (T_OBJECT_OPERATOR) </code></pre> <p>Most likely, this is a syntax error, but I just can't figure out which part of my code is responsible.</p> <p>I've also gone through the Queries section of the user guide of CodeIgniter, but it wasn't explained clearly there.</p> <p>Can anyone please tell me where my mistake is, and what is the correct syntax for what I'm trying to do? </p> <p>My controller -</p> <pre><code> &lt;?php if ( ! defined('BASEPATH')){ exit('No direct script access allowed');} class Student extends CI_Controller { function __construct() { parent::__construct(); #$this-&gt;load-&gt;helper('url'); $default_roll = '20141000'; $this-&gt;load-&gt;model('student_model'); $this-&gt;load-&gt;helper('string'); } //Show all Students public function index() { $data['student_list'] = $this-&gt;student_model-&gt;get_all_students(); $this-&gt;load-&gt;view('student_view', $data); } //Insert a student public function insert_student_db() { $sdata['name'] = $this-&gt;input-&gt;post('name'); $sdata['department'] = $this-&gt;input-&gt;post('department'); $sql = "SELECT MAX(roll) FROM student WHERE department = ".this-&gt;db-&gt;escape_str($sdata['department']); $query = $this-&gt;db-&gt;query($sql); $rolltext = substr($query, 9); $year = substr($query, 3, -3); if($rolltext == NULL &amp;&amp; $year == NULL) { $rolltext = str_pad(1,3,'0',STR_PAD_LEFT); $year = '2014'; } else { $rolltext++; $rolltext = str_pad($rolltext,3,'0',STR_PAD_LEFT); if($rolltext == '100') { $rolltext = str_pad(1,3,'0',STR_PAD_LEFT); $year++; } } $sdata['roll'] = $sdata['department'].$year.$rolltext; $sdata['email'] = $this-&gt;input-&gt;post('email'); $sdata['mobile'] = $this-&gt;input-&gt;post('mobile'); $res = $this-&gt;student_model-&gt;insert_student($sdata); if($res) { header('location:'.base_url()."index.php/student/".$this-&gt;index()); } } } ?&gt; </code></pre> </div>

MyString(const MyString &_str);跟运算符=的重载不是一个意思吗?为什么复制构造函数的定义不能像=重载那样写?

![图片说明](https://img-ask.csdn.net/upload/202005/08/1588908005_455901.jpg) //6-24.2classfile.cpp ``` #include <iostream> #include <string.h> #include "6-24.2classfile.h" using namespace std; //constructor&destructor MyString::MyString() { str=new char;//??? str[0]='\0'; len=0; //为什么长度等于0? } MyString::MyString(const char *_str) //char *_str是一个char数组 { len=strlen(_str); str=new char[len+1]; str[len]='\0'; strncpy(str,_str,len+1); //strncpy有三个参数 // char *strncpy(char *dest, const char *src, size_t n) //把 src 所指向的字符串复制到 dest,最多复制 n 个字符。 /*当_str长度小于第三个参数n时 ,str的剩余部分将用空字节填充*/ } MyString::MyString(const MyString &_str) { len =_str.len; str=new char[len+1]; str[len]='\0'; strncpy(str,_str.str,len+1); //_str.str(_str //cout<<str<<endl; } void MyString::operator =(const MyString &_str) { str=_str.str; len=_str.len; } MyString::~MyString(){ //??? } //operator const MyString MyString::operator +(const MyString &_str) { int newLen=len+_str.len; char *newStr=new char[newLen+1]; newStr[newLen]='\0'; strncpy(newStr,str,len); //先将str(原字符串)复制到新的字符数组 strncat(newStr,_str.str,_str.len); //在将_str.str将接到newStr后面 /*char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。*/ return MyString(newStr); //返回一个MyString类对象 } //friend istream & operator >>(istream &_in,MyString &_str) { _in>>_str.str; //istream是什么鬼? 输入流 _str.len=strlen(_str.str); return _in; } ostream & operator <<(ostream &_out,MyString &_str) { _out<<_str.str<<endl<<"length:"<<_str.len; // return _out; } ``` //6-24.2classfile.h ``` #include <iostream> #include <string> using namespace std; class MyString{ public: MyString(); MyString(const char *_str); MyString(const MyString &_str); ~MyString(); public: const MyString operator +(const MyString &_str); void operator =(const MyString &_str); void operator +=(const MyString& _str); const char operator [](int i); public: friend istream & operator >>(istream &_in,MyString &_str); friend ostream & operator <<(ostream &_out, MyString &_str); private: char *str; int len; }; ```

c语言strncpy函数的使用

在visual stdio2013中不能使用strncpy函数,说是应该用strcpy_s ``` strncpy_s(&q_StrGameBack[q_arrSanke[i][0]][q_arrSanke[i][1]],&m, 2); ``` 可是我调用的时候总是提示调用参数太少 查了下函数原型是 ``` strncpy_s(_Out_writes_z_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(_MaxCount) const char * _Src, _In_ rsize_t _MaxCount); ``` 我应该是缺少了_In_ rsize_t _SizeInBytes这个参数,可是这个参数该怎么填啊 求哪位大神给我解答下,谢谢了

关于c语言中strlen函数使用

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ #include <stdio.h> struct btbucode//定义结构体btbucode { int n; char pn[50]; }; struct btbucode code[]={{11, "cailiao"},{12, "caiji"},{13, "shang"},{14, "jingji"},{15, "jixin"}, {16, "shipin"},{17, "lixueyuan"},{18, "fama"},{19, "waiguoyu"},{20, "yishuchuanmei"}, {95, "gonghui"},{96,"jiaowuchu"},{97,"renshichu"},{98,"kejichu"},{99,"xiaoban"}};//定义结构体数组code并初始化 /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ #include<string.h> int main() {int m,flag=0,i; scanf("%d",&m); for(i=0;i<strlen(code);i++) if(m==code[i].n) {flag=1;printf("%s\n",code[i].pn);break;} if(flag==0) printf("未找到\n"); return 0;} 我用了一个strlen函数来算结构体数组长度 但是出现错误提示 error C2664: 'strlen' : cannot convert parameter 1 from 'struct btbucode [15]' to 'const char *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

const_cast和函数重载问题

const string &shorterString(const string&s1,const string&s2) { return s1.size()<=s2.size()?s1:s2; } string &shorterString( string&s1,string&s2){ auto &r = shorterString(const_cast<const string&>(s1),const_cast<const string&>(s2)); return const_cast<string&>(r); } 为什么调用非const函数不会发生递归调用

c语言 strcat语句 gets_s

#include<stdio.h> #include<string.h> int main() { char c1[20], c2[20]; gets_s(c1); gets_s(c2); printf("%s", strcat(c1, c2)); }![![图片说明](https://img-ask.csdn.net/upload/201512/16/1450272006_185622.png)图片说明](https://img-ask.csdn.net/upload/201512/16/1450271989_53586.png) 请问是哪里出错了,而且明显两个字符连接后是没有空格留在中间的,请问一下应该如何改才能让两个字符串中连接后能有空格留在中间,我是菜鸟,希望大神多多指教

fwscanf_s函数如何使用

fontpreviewheight = GetDlgItemInt(dlghwndset, 51, NULL, 1); fontmainheight = GetDlgItemInt(dlghwndset, 52, NULL, 1); usersetheight = GetDlgItemInt(dlghwndset, 55, NULL, 1); previewmulti= GetDlgItemInt(dlghwndset, 53, NULL, 1); mainmulti = GetDlgItemInt(dlghwndset, 54, NULL, 1); previewwindowswidth= GetDlgItemInt(dlghwndset, 56, NULL, 1); previewwindowheight= GetDlgItemInt(dlghwndset, 59, NULL, 1); FILE *file = fopen("set.txt", "w+"); if (file == NULL) { MessageBox(NULL, _T("write file error"), _T("write file error"), MB_OK); } else { if (fwprintf_s(file, _T("%d,%d,%d,%d,%d,%d,%d\n"),fontpreviewheight, fontmainheight,previewmulti,mainmulti,usersetheight, previewwindowswidth, previewwindowheight)< 0) { MessageBox(NULL, _T("write file error"), _T("write file error"), MB_OK); } } wchar_t str0[20], str1[20], str2[20], str3[20], str4[20], str5[20], str6[20]; wchar_t a; fwscanf_s(fileset, _T("%[^,]%c%[^,]%c%[^,]%c%[^,]%c[^,]%c%[^,]%c%[^\n]\n"), str0,&a, str1, &a, str2, &a, str3, &a, str4, &a, str5, &a, str6);这样写不对。。。 请问这个函数怎么用

str_replace函数

<div class="post-text" itemprop="text"> <pre><code>$tag = mysql_real_escape_string($_GET['tag']); $tag = str_replace("-", " ", $_GET['tag']); $query = mysql_query("SELECT * FROM tags WHERE name = '$tag'"); $row = mysql_fetch_assoc($query); if (!mysql_num_rows($query)) exit('That tag dont exist.'); </code></pre> <p>I have a tag with spaces in its name, how should i do to replace the spaces with hyphens? I think the above code should work but it doesnt :/</p> <p><b>Update:</b></p> <pre><code>$tag = str_replace(' ', '-', $_GET['tag']); $tag = mysql_real_escape_string($tag); $query = mysql_query("SELECT * FROM tags WHERE name = '$tag'"); $row = mysql_fetch_assoc($query); if (!mysql_num_rows($query)) exit('That tag dont exist'); </code></pre> <p><b>Db tags</b></p> <pre><code>`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL INSERT INTO `tags` (`id`, `name`) VALUES (1, 'test'), (2, 'test test'), (3, 'test test test test'); </code></pre> </div>

C语言实现strcat的问题

``` #include <stdio.h> #include <stdlib.h> #define MAX_STR_LEN 10000 char *strcpy(char *t,char *s){ char *strDest=t; while((*t++=*s++)); return strDest; } char * str_cat(char *str,char *s) { char *temp; temp = (char *)malloc(sizeof(char)*MAX_STR_LEN+1); strcpy(temp,str); while (*temp!='\0') temp++; while (*s!='\0') { *temp++=*s++; } *temp='\0'; return temp; } int main() { char s[MAX_STR_LEN], str[MAX_STR_LEN], *p; #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); #endif // ONLINE_JUDGE while(gets(s) != NULL && gets(str) != NULL) { p = str_cat(str, s); puts(str); puts(s); puts(p); free(p); } return 0; } ``` 函数要不改变str和s,动态内存分配一个新变量,结果放到这个变量然后返回。 哪里出错了呢..最后的temp总是空. --- ``` 要求输入 Look! I love china! 输出 I love china! Look! I love china! Look! ```

C语言用指针查找字符串str1和str2中的第一组相同的字符,删除str1之前与str2之后的

编写函数void mcpy(char *str1,char *str2),其功能是查找字符串str1和str2中的第一组相同的字符,找到后,保留str1字符串中位于该字符之前部分(不包含该字符),和str2字符串中位于该字符之后的部分(不包含该字符),合并在一起存储在str1中并输出,如果str1和str2中没有相同的字符,则输出“无相同字符”。(要求:在主函数中输入字符串str1和str2,并输出原始字符串和修改后字符串 **例如:str1=”hello”,str2=”world”,则输出”hellrld”)**

c语言中strlen函数编译中出现问题,谢谢

![图片说明](https://img-ask.csdn.net/upload/201912/22/1577002166_221950.png) #include<stdio.h> #include<string.h> int main() { char str1[] = "I Love D"; char str2[]="ni shi shui"; char str3[100]; //b[] = a[]; strcpy_s(str1, str2); strcpy_s(str3, "woaini"); printf("str1=%s\n", str1); printf("str2=%s\n", str2); printf("str3=%s\n", str3); return 0; } 报错看不懂,请指点一下,谢谢

C语言关于strchr函数的使用问题

#define __STDC_WANT_LIB_EXT1__ 1 #include <string.h> #include <stdio.h> int main(void) { char str[] = "Enter enter the number hello world!"; char ch = 'e'; char *Got_char = str; int count = 0; while(Got_char = strchr(Got_char, ch)) { ++Got_char; ++count; } printf("这个字符串:\"%s\"中的关键字'%c'共出现%d次\n", str,ch,count); return 0; } 1.在这里为什么要使用str的地址并赋值给*Got_char? 2.Got _ char = strchr(Got_char, ch)是如何工作的? 3.为什么要递增count和Got_char? 望大神解惑!

c语言 strcat 函数问题

今天实验strcat函数的时候老出现一个问题显示:用于调用的参数太少(本人使用的是VS2017) 自己自行百度看到有这种写法却可以编译通过,求解。 ``` #include <stdio.h> #include <string.h> int main(void) { char d[] = "adiadjwijda"; char *s = "aidwi"; strcat_s(d,s); printf("%s", d); getchar(); } ```

编写函数void replace(char *str,char *sl,char *s2)实现字符串的特殊替换功能

用C语言或者C++编码 编写函数void replace(char *str,char *sl,char *s2)实现字符串的特殊替换功能:在字符串str中查找与sl中相同的字符,找到相同字符时用字符串s2中的对应位置的字符替换str中相应位置的字符。形参sl和s2有相同的字符个数,且sl中各字符互不相同。例如:字符串str[]="ABCABC",sl[]="AC",s2[]="ZX",则s2中的字符Z对应sl中的字符A,s2中的字符X对应sl中的字符C,函数replace(str,sl,s2)将字符串str的内容变为"ZBXZBX"

str_replace函数如何工作?

<div class="post-text" itemprop="text"> <p>I'm trying to understand the <code>str_replace</code> function. </p> <p>Code:</p> <pre><code>$a = array(1,8,7,5); $b = array(3,7,11,6); $str = '879'; $c = str_replace($a, $b , $str); echo $c; </code></pre> <p>Output: </p> <blockquote> <p>11119</p> </blockquote> <p>I don't understand the output. Can someone explain how the <code>str_replace</code> function works?</p> </div>

有关于C中gets()函数返回值问题

做练习时, gets(str)!=NULL 被编译器警告说 "compartion between pointer and integer",说明gets()返回值变为int 具体代码如下 ``` #include<stdio.h> #define MAX 80 void delspace(char * p1); int main(void){ char str[MAX]; puts("Please enter the string:"); //gets(str); //while(*str != '\0'){ while(gets(str)!=NULL){ delspace(str); puts("The result is:"); puts(str); puts("Please enter other string:"); // gets(str); } puts("Done!"); return 0; } ``` 编译器版本 ``` gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ``` 在 user/include/stdio.h中的定义,但是我没找到NULL的定义 ``` extern char *gets (char *__s) __wur __attribute_deprecated__; ``` 后来我做了两个测试 ``` test.c:6:11: warning: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘int’ [-Wformat=] printf("%p",gets(name)); test.c:6:11: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘void *’ [-Wformat=] printf("%d\n",NULL); ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

立即提问
相关内容推荐